var ds;
var grid;
var insertForm;
var updateForm;
var form;
var win;
var flag = false;
var detailForm;
var processGrid;
var process = Ext.data.Record.create([{
			name : 'transnum'
		}, {
			name : 'linenum'
		}, {
			name : 'type'

		}, {
			name : 'spec'
		}, {
			name : 'perqty'
		}, {
			name : 'mianji'
		}, {
			name : 'danjia'
		}, {
			name : 'tisheng'
		}, {
			name : 'jiage'
		}, {
			name : 'pecent1'
		}, {
			name : 'processCost'
		}]);
var similaryList;
var simGrid;
var TRANSNUM;
var detailWin;
var detailSm;
var sortStore, detailFormStore, detailGridStore, schemeStore;
var LINENUM;
var processDetailForm;
var processDetailSm;
var processDetailWin;
Ext.onReady(function() {
			initData();
		});

function initData() {
	ds = new Ext.data.Store({
				proxy : new Ext.data.HttpProxy({
							url : '../priceInf.do?action=list'
						}),

				reader : new Ext.data.JsonReader({
							totalProperty : 'totalProperty',
							root : 'root'
						}, [{
									name : 'ssign'
								}, {
									name : 'spec'
								}, {
									name : 'plate'
								}, {
									name : 'transnum'
								}, {
									name : 'custid'
								}, {
									name : 'reqdate'
								}])
			});

	ds.load({
				params : {
					start : 0,
					limit : 10
				}
			});
	sortStore = new Ext.data.Store({
		proxy : new Ext.data.HttpProxy({
					url : '../orderJiaGongIndex.do?action=sort'
				}),
		reader : new Ext.data.JsonReader({
					totalProperty : 'totalProperty',
					root : 'root'
				}, [{
							name : 'sort',
							mapping : 'specName'
						}])

			// reader : new Ext.data.ArrayReader(sortRec)
		});
	sortStore.load({
				params : {
					s : 0
				}
			});
	schemeStore = new Ext.data.Store({
				proxy : new Ext.data.HttpProxy({
							url : '../orderJiaGongIndex.do?action=scheme'
						}),

				reader : new Ext.data.JsonReader({
							// totalProperty : 'totalProperty',
							root : 'root'
						}, [{
									name : 'scheme'
								}, {
									name : 'bz'
								}, {
									name : 'areaFunc'
								}])
			});
	similaryList = new Ext.data.Store({
		proxy : new Ext.data.HttpProxy({
					url : '../CostEstimate.do?action=getList'
				}),
		reader : new Ext.data.JsonReader({
					totalProperty : 'totalProperty',
					root : 'root'
				}, [{
							name : 'id'
						}, {
							name : 'spec'
						}, {
							name : 'factory'

						}, {
							name : 'transnum'
						}, {
							name : 'ordernum'
						}, {
							name : 'ssign'
						}, {
							name : 'ssign_yz'
						}, {
							name : 'grossweight'
						}, {
							name : 'qiandao_yield'
						}, {
							name : 'yimo'
						}, {
							name : 'weimo'
						}, {
							name : 'feipin'
						}, {
							name : 'qiandao_cost'
						}, {
							name : 'product_cost_before'
						}, {
							name : 'specType'
						}, {
							name : 'processScheme'
						}, {
							name : 'plate'
						}, {
							name : 'houdao_yield'
						}, {
							name : 'date1'
						}, {
							name : 'ordercost'
						}, {
							name : 'lirun'
						}, {
							name : 'bz'
						}, {
							name : 'maker'
						}, {
							name : 'makeDate'
						}, {
							name : 'type'
						}, {
							name : 'peifang'
						}, {
							name : 'spec_yz'
						}, {
							name : 'month1'
						}, {
							name : 'year1'
						}, {
							name : 'status'
						}])

			// reader : new Ext.data.ArrayReader(sortRec)
		});

	detailFormStore = new Ext.data.Store({
		proxy : new Ext.data.HttpProxy({
					url : '../DetailPrice.do?action=getForm'
				}),
		reader : new Ext.data.JsonReader({
					totalProperty : 'totalProperty',
					root : 'root'
				}, [{
							name : 'transnum'
						}, {
							name : 'kaiMoSpec'
						}, {
							name : 'getSpec'

						}, {
							name : 'netWeight',
							type:'float'
						}, {
							name : 'grossWeight',
							type:'float'
						}, {
							name : 'grossGPrice',
							type:'float'
						}, {
							name : 'grossUpdate',
							type:'float'
						}, {
							name : 'grossPrice',
							type:'float'
						}, {
							name : 'mtrlProcsPrice',
							type:'float'
						}, {
							name : 'congCiFee',
							type:'float'
						}, {
							name : 'packFee',
							type:'float'
						}, {
							name : 'otherFee',
							type:'float'
						}, {
							name : 'baseCost',
							type:'float'
						}, {
							name : 'totalUpdate',
							type:'float'
						}, {
							name : 'amount',
							type:'float'
						}, {
							name : 'sanXiangFee',
							type:'float'
						}, {
							name : 'sanXiangRate',
							type:'float'
						}, {
							name : 'taxFee',
							type:'float'
						}, {
							name : 'taxRate',
							type:'float'
						}, {
							name : 'mtrlProcs',
							type:'float'
						}])

			// reader : new Ext.data.ArrayReader(sortRec)
		});
	detailGridStore = new Ext.data.Store({
		proxy : new Ext.data.HttpProxy({
					url : '../DetailPrice.do?action=getGrid'
				}),
		reader : new Ext.data.JsonReader({
					totalProperty : 'totalProperty',
					root : 'root'
				}, [{
							name : 'transnum'
						}, {
							name : 'linenum'
						}, {
							name : 'type'

						}, {
							name : 'spec'
						}, {
							name : 'perqty',
							type:'float'
						}, {
							name : 'mianji',
							type:'float'
						}, {
							name : 'danjia',
							type:'float'
						}, {
							name : 'tisheng',
							type:'float'
						}, {
							name : 'jiage',
							type:'float'
						}, {
							name : 'pecent1',
							type:'float'
						}, {
							name : 'processCost',
							type:'float'
						}])

			// reader : new Ext.data.ArrayReader(sortRec)
		});
	detailGridStore.on("update", function(_store, _record, _operation) {
		// 计算单价，
	
		_record.data["jiage"] = _record.data["mianji"] * _record.data["danjia"];
		// 计算总价
		var upcost;
		if (_record.data["linenum"] == 1) {
			upcost = detailForm.find("name", "grossPrice")[0].getValue();

		} else {
			upcost = detailGridStore.getAt(_record.data["linenum"] - 2).data["processCost"];
		}
		var index = _record.data["linenum"] - 1;
		//alert("index:"+index);
		while (index < detailGridStore.getCount()) {
			_record = detailGridStore.getAt(index++);
			if (_record.data["perqty"] > 0 && _record.data["pecent1"] != 0) {
				_record.data["processCost"] = (upcost / _record.data["perqty"] + _record.data["jiage"])
						/ _record.data["pecent1"];

			}
		}
		

		detailForm.findById("detailId").getView().refresh();
	});
	detailGridStore.on("load", function(_store, _record, _operation) {

				var len = detailGridStore.getCount();
				// alert("load:"+len);
				while (len < 1) {
					// alert("add default");	for (var p in _record.data)
			//alert(p + " is :" + _record.data[p]);
					var pd = new process({
								transnum : TRANSNUM,
								linenum : 0,
								type : "",
								spec : "",
								perqty : "1",
								mianji : "1",
								danjia : "1",
								tisheng : "1",
								jiage : "1",
								pecent1 : "1"
							});
					len++;
					detailGridStore.add(pd);
				}
			});
	detailGridStore.on("remove", function(_store, _record, _operation) {
				//alert("remove");
				var i = 1;
				detailGridStore.each(function(_rec) {
							_rec.data["linenum"] = i++;

						})
			});
	detailGridStore.on("add", function(_store, _record, _operation) {
		// alert("add");
		_record[0].data["transnum"] = detailGridStore.getAt(0).data["transnum"];
		_record[0].data["linenum"] = detailGridStore.getCount();

	});

	initGrid();
}


function initSimGrid() {
	var sm = new Ext.grid.CheckboxSelectionModel();
	if (!simGrid)
		simGrid = new Ext.grid.GridPanel({

					id : 'sim-grid',
					autoScoll : true,
					ds : similaryList,
					width : 340,
					height : 150,
					cm : new Ext.grid.ColumnModel([sm, {
								header : "编号",
								width : 60,
								sortable : true,
								dataIndex : 'id'
							}, {
								header : "月份",
								width : 60,
								sortable : true,
								dataIndex : 'month1'
							}, {
								header : "年份",
								width : 60,
								sortable : true,
								dataIndex : 'year1'
							}, {
								header : "规格",
								width : 60,
								sortable : true,
								dataIndex : 'spec'
							}, {
								header : "分厂号",
								width : 60,
								sortable : true,
								dataIndex : 'factory'
							}, {
								header : "牌号",
								width : 60,
								sortable : true,
								dataIndex : 'ssign'
							}, {
								header : "规格类型",
								width : 60,
								sortable : true,
								dataIndex : 'specType'
							}, {
								header : "加工流程编号",
								width : 60,
								sortable : true,
								dataIndex : 'processScheme'
							}, {
								header : "镀层",
								width : 60,
								sortable : true,
								dataIndex : 'plate'
							}, {
								header : "订单成本",
								width : 60,
								sortable : true,
								dataIndex : 'ordercost'
							}]),
					sm : sm,

					viewConfig : {
						forceFit : false
					}

				});
	// simGrid.hide();
	return simGrid;
}

function initProcessGrid() {
	var fm = Ext.form;
	var sm = new Ext.grid.CheckboxSelectionModel();
	if (!processGrid)
		processGrid = new Ext.grid.EditorGridPanel({
			id : 'detailId',
			viewConfig : {
				forceFit : false
			},
			autoScroll : true,
			ds : detailGridStore,
			sm : sm,
			height : 150,
			width : 420,
			enableDragDrop : true,
			// region : 'west',
			ddGroup : 'gridDDGroup',

			cm : new Ext.grid.ColumnModel([sm, {
						header : "编号",
						width : 50,
						sortable : true,
						editor : new fm.TextField({
									allowBlank : false
								}),
						dataIndex : 'transnum'
					}, {
						header : "行号",
						width : 50,
						sortable : true,
						editor : new fm.TextField({
									allowBlank : false
								}),
						dataIndex : 'linenum'
					}, {
						header : "类型",
						width : 50,
						sortable : true,
						editor : new fm.TextField({
									allowBlank : false
								}),
						dataIndex : 'type'
					}, {
						header : "加工规格",
						width : 50,
						sortable : true,
						editor : new fm.TextField({
									allowBlank : false
								}),
						dataIndex : 'spec'
					}, {
						header : "件数",
						width : 50,
						sortable : true,
						editor : new fm.TextField({
									allowBlank : false
								}),
						dataIndex : 'perqty'
					}, {
						header : "面积",
						width : 50,
						sortable : true,
						editor : new fm.TextField({
									allowBlank : false
								}),
						dataIndex : 'mianji'
					}, {
						header : "单价",
						width : 50,
						sortable : true,
						editor : new fm.TextField({
									allowBlank : false
								}),
						dataIndex : 'danjia'
					}, {
						header : "提升系数",
						width : 50,
						sortable : true,
						editor : new fm.TextField({
									allowBlank : false
								}),
						dataIndex : 'tisheng'
					}, {
						header : "成品率",
						width : 50,
						sortable : true,
						editor : new fm.TextField({
									allowBlank : false
								}),
						dataIndex : 'pecent1'
					}, {
						header : "加工费",
						width : 50,
						sortable : true,
						editor : new fm.TextField({
									allowBlank : false
								}),
						dataIndex : 'jiage'
					}, {
						header : "本工序止成本",
						width : 50,
						sortable : true,
						editor : new fm.TextField({
									allowBlank : false
								}),
						dataIndex : 'processCost'
					}])

				// renderTo : 'main'
			});
	return processGrid;
}
function getDetailForm() {
	if (!processGrid)
		processGrid = initProcessGrid();
	if (!detailForm)
		detailForm = new Ext.FormPanel({
					url : '../DetailPrice.do?action=updateForm',
					labelAlign : 'left',
					title : '详细信息',
					buttonAlign : 'right',
					bodyStyle : 'padding:5px;',
					width : 450,
					height : 600,
					frame : true,// 设置了面板的边角是圆弧过度的，底色
					labelWidth : 80,

					// autoScoll : true,
					items : [{
								layout : 'column',// 在formpanel的itmes加入一个column的定义
								border : false,
								labelSeparator : ':',
								items : [{
											columnWidth : .450,
											layout : 'form',
											border : false,
											items : [{
														xtype : 'textfield',
														fieldLabel : '序列号',
														// readOnly : true,
														name : 'transnum',
														allowBlank : false,
														anchor : '90%'
													}]
										}, {
											columnWidth : .450,
											layout : 'form',
											border : false,
											items : [{
														xtype : 'textfield',
														fieldLabel : '技术规格',
														// readOnly : true,
														name : 'kaiMoSpec',
														allowBlank : false,
														anchor : '90%'
													}]
										}]
							}, {
								layout : 'column',// 在formpanel的itmes加入一个column的定义
								border : false,
								labelSeparator : ':',
								items : [{
											columnWidth : .450,
											layout : 'form',
											border : false,
											items : [{
														xtype : 'textfield',
														fieldLabel : '领料规格',
														allowBlank : false,
														// readOnly : true,
														// value : _cus.attn,
														name : "getSpec",
														anchor : '90%'
													}]
										}, {
											columnWidth : .450,
											layout : 'form',
											border : false,
											items : [{
														xtype : 'textfield',
														fieldLabel : '牌号',
														// readOnly : true,
														name : 'ssign',
														//allowBlank : false,
														anchor : '90%'
													}]
										}]

							}, {
								layout : 'column',// 在formpanel的itmes加入一个column的定义
								border : false,
								labelSeparator : ':',
								items : [{
											columnWidth : .450,
											layout : 'form',
											border : false,
											items : [{
														xtype : 'textfield',
														fieldLabel : '镀层',
														//allowBlank : false,
														// readOnly : true,
														// value : _cus.attn,
														name : "plate",
														anchor : '90%'
													}]
										}]

							}, {
								layout : 'column',// 在formpanel的itmes加入一个column的定义
								border : false,
								labelSeparator : ':',
								items : [{
											columnWidth : .450,
											layout : 'form',
											border : false,
											items : [{
														xtype : 'textfield',
														fieldLabel : '开模否',
														//allowBlank : false,
														// readOnly : true,
														// value : _cus.attn,

														name : "",
														anchor : '90%'
													}]
										}, {
											columnWidth : .450,
											layout : 'form',
											border : false,
											items : [{
														xtype : 'textfield',
														fieldLabel : '图号',
														// readOnly : true,
														name : 'mapNum',
														//allowBlank : false,
														anchor : '90%'
													}]
										}]

							}, {
								layout : 'column',// 在formpanel的itmes加入一个column的定义
								border : false,
								labelSeparator : ':',
								items : [{
											columnWidth : .450,
											layout : 'form',
											border : false,
											items : [{
														xtype : 'textfield',
														fieldLabel : '技术状态',
														//allowBlank : false,
														// readOnly : true,
														// value : _cus.attn,
														name : "techfd",
														anchor : '90%'
													}]
										}, {
											columnWidth : .450,
											layout : 'form',
											border : false,
											items : [{
														xtype : 'textfield',
														fieldLabel : '密度',
														// readOnly : true,
														name : 'density',
														//allowBlank : false,
														anchor : '90%'
													}]
										}]

							}, {
								layout : 'column',// 在formpanel的itmes加入一个column的定义
								border : false,
								labelSeparator : ':',
								items : [{
											columnWidth : .450,
											layout : 'form',
											border : false,
											items : [{
														xtype : 'textfield',
														fieldLabel : '净重',
														allowBlank : false,

														name : "netWeight",
														anchor : '90%'
													}]
										}, {
											columnWidth : .450,
											layout : 'form',
											border : false,
											items : [{
														xtype : 'textfield',
														fieldLabel : '毛重',
														// readOnly : true,
														name : 'grossWeight',
														allowBlank : false,
														listeners : {
															"change" : function() {

																calcGross();

															}
														},
														anchor : '90%'
													}]
										}]

							}, {
								layout : 'column',// 在formpanel的itmes加入一个column的定义
								border : false,
								labelSeparator : ':',
								items : [{
											columnWidth : .450,
											layout : 'form',
											border : false,
											items : [{
														xtype : 'textfield',
														fieldLabel : '毛坯单价',
														// readOnly : true,
														// value : _cus.attn,
														name : "grossGPrice",
														listeners : {
															"change" : function() {

																calcGross();

															}
														},
														anchor : '90%'
													}]
										}, {
											columnWidth : .450,
											layout : 'form',
											border : false,
											items : [{
														xtype : 'textfield',
														fieldLabel : '毛坯提升',
														// readOnly : true,
														name : 'grossUpdate',
														listeners : {
															"change" : function() {

																calcGross();

															}
														},
														allowBlank : false,
														anchor : '90%'
													}]
										}]

							}, {
								layout : 'column',// 在formpanel的itmes加入一个column的定义
								border : false,
								labelSeparator : ':',
								items : [{
											columnWidth : .450,
											layout : 'form',
											border : false,
											items : [{
														xtype : 'textfield',
														fieldLabel : '材料费',
														// readOnly : true,
														listeners : {
															"change" : function() {

																calcFirstProcess();

															}
														},
														name : "grossPrice",
														anchor : '90%'
													}]
										}, {
											columnWidth : .450,
											layout : 'form',
											border : false,
											items : [{
														xtype : 'textfield',
														fieldLabel : '加工费',
														// readOnly : true,
														name : 'mtrlProcsPrice',
														listeners : {
															"change" : function() {

																calcBaseFee();

															}
														},
														allowBlank : false,
														anchor : '90%'
													}]
										}]

							}, {
								layout : 'column',// 在formpanel的itmes加入一个column的定义
								border : false,
								labelSeparator : ':',
								items : [processGrid]

							}, {
								layout : 'column',// 在formpanel的itmes加入一个column的定义
								border : false,
								labelSeparator : ':',
								items : [{
											columnWidth : .450,
											layout : 'form',
											border : false,
											items : [{
														xtype : 'textfield',
														fieldLabel : '充磁费',
														listeners : {
															"change" : function() {

																calcBaseFee();

															}
														},
														name : "congCiFee",
														anchor : '90%'
													}]
										}, {
											columnWidth : .450,
											layout : 'form',
											border : false,
											items : [{
														xtype : 'textfield',
														fieldLabel : '包装费',
														// readOnly : true,
														listeners : {
															"change" : function() {

																calcBaseFee();

															}
														},
														name : 'packFee',
														allowBlank : false,
														anchor : '90%'
													}]
										}]

							}, {
								layout : 'column',// 在formpanel的itmes加入一个column的定义
								border : false,
								labelSeparator : ':',
								items : [{
											columnWidth : .450,
											layout : 'form',
											border : false,
											items : [{
														xtype : 'textfield',
														fieldLabel : '其他费',
														// readOnly : true,
														// value : _cus.attn,
														listeners : {
															"change" : function() {

																calcBaseFee();

															}
														},
														name : "otherFee",
														anchor : '90%'
													}]
										}, {
											columnWidth : .450,
											layout : 'form',
											border : false,
											items : [{
														xtype : 'textfield',
														fieldLabel : '成品基价',
														// readOnly : true,
														listeners : {
															"change" : function() {

																calcAmount();

															}
														},
														name : 'baseCost',
														allowBlank : false,
														anchor : '90%'
													}]
										}]

							}, {
								layout : 'column',// 在formpanel的itmes加入一个column的定义
								border : false,
								labelSeparator : ':',
								items : [{
											columnWidth : .450,
											layout : 'form',
											border : false,
											items : [{
														xtype : 'textfield',
														fieldLabel : '综合提升',
														// readOnly : true,
														// value : _cus.attn,
														listeners : {
															"change" : function() {

																calcAmount();

															}
														},
														name : "totalUpdate",
														anchor : '90%'
													}]
										}, {
											columnWidth : .450,
											layout : 'form',
											border : false,
											items : [{
														xtype : 'textfield',
														fieldLabel : '产品价',
														// readOnly : true,
														listeners : {
															"change" : function() {

																calcAllFee();

															}
														},
														name : 'amount',
														allowBlank : false,
														anchor : '90%'
													}]
										}]

							}, {
								layout : 'column',// 在formpanel的itmes加入一个column的定义
								border : false,
								labelSeparator : ':',
								items : [{
											columnWidth : .450,
											layout : 'form',
											border : false,
											items : [{
														xtype : 'textfield',
														fieldLabel : '三项提升',
														// readOnly : true,
														// value : _cus.attn,
														listeners : {
															"change" : function() {

																calcSXFee();

															}
														},
														name : "sanXiangRate",
														anchor : '90%'
													}]
										}, {
											columnWidth : .450,
											layout : 'form',
											border : false,
											items : [{
														xtype : 'textfield',
														fieldLabel : '三项金额',
														// readOnly : true,
														name : 'sanXiangFee',
														listeners : {
															"change" : function() {

																calcAllFee();

															}
														},
														allowBlank : false,
														anchor : '90%'
													}]
										}]

							}, {
								layout : 'column',// 在formpanel的itmes加入一个column的定义
								border : false,
								labelSeparator : ':',
								items : [{
											columnWidth : .450,
											layout : 'form',
											border : false,
											items : [{
														xtype : 'textfield',
														fieldLabel : '税率',
														// readOnly : true,
														// value : _cus.attn,
														name : "taxRate",
														listeners : {
															"change" : function() {

																calcTRFee();

															}
														},
														anchor : '90%'
													}]
										}, {
											columnWidth : .450,
											layout : 'form',
											border : false,
											items : [{
														xtype : 'textfield',
														fieldLabel : '税额',
														// readOnly : true,
														name : 'taxFee',
														listeners : {
															"change" : function() {

																calcAllFee();

															}
														},
														allowBlank : false,
														anchor : '90%'
													}]
										}]

							}, {
								layout : 'column',// 在formpanel的itmes加入一个column的定义
								border : false,
								labelSeparator : ':',
								items : [{
											columnWidth : .450,
											layout : 'form',
											border : false,
											items : [{
														xtype : 'textfield',
														fieldLabel : '出厂价',
														// readOnly : true,
														// value : _cus.attn,
														name : "mtrlProcs",

														anchor : '90%'
													}]
										}]

							}]
				});
	return detailForm;
}

function getUpdateForm() {
	if (!simGrid)
		simGrid = initSimGrid();
	if (!updateForm) {
		updateForm = new Ext.FormPanel({
					url : '../CostEstimate.do?action=getList',
					labelAlign : 'left',
					title : '详细信息',
					buttonAlign : 'right',
					bodyStyle : 'padding:5px;',
					width : 400,
					autoScroll : true,
					frame : true,// 设置了面板的边角是圆弧过度的，底色
					labelWidth : 80,

					items : [{
								layout : 'column',// 在formpanel的itmes加入一个column的定义
								border : false,
								labelSeparator : ':',
								items : [{
											columnWidth : .651,
											layout : 'form',
											border : false,
											items : [{
														xtype : 'textfield',
														fieldLabel : '规格',
														// readOnly : true,
														name : 'spec',
														allowBlank : false,
														anchor : '90%'
													}]
										}]
							}, {
								layout : 'column',// 在formpanel的itmes加入一个column的定义
								border : false,
								labelSeparator : ':',
								items : [{
											columnWidth : .651,
											layout : 'form',
											border : false,
											items : [{
														xtype : 'textfield',
														fieldLabel : '牌号',
														allowBlank : false,
														// readOnly : true,
														// value : _cus.attn,
														name : "ssign",
														anchor : '90%'
													}]
										}]

							}, {
								layout : 'column',// 在formpanel的itmes加入一个column的定义
								border : false,
								labelSeparator : ':',
								items : [{
											columnWidth : .651,
											layout : 'form',
											border : false,
											items : [{
														xtype : 'textfield',
														fieldLabel : '镀层',
														allowBlank : false,
														// readOnly : true,
														// value : _cus.attn,
														name : "plate",
														anchor : '90%'
													}]
										}]

							}, {
								layout : 'column',// 在formpanel的itmes加入一个column的定义
								border : false,
								labelSeparator : ':',
								items : [{
											columnWidth : .651,
											layout : 'form',
											border : false,
											items : [{
														// xtype : 'textfield',
														fieldLabel : '规格类型',
														// readOnly : true,
														// value : _cus.attn,
														name : "specType",
														allowBlank : false,

														xtype : 'combo',
														store : sortStore,
														displayField : 'sort',
														// valueField : 'value',
														// typeAhead : true,

														triggerAction : 'all',
														mode : 'local',

														anchor : '90%'
													}]
										}]

							}, {
								layout : 'column',// 在formpanel的itmes加入一个column的定义
								border : false,
								labelSeparator : ':',
								items : [{
											columnWidth : .651,
											layout : 'form',
											border : false,
											items : [{
														xtype : 'textfield',
														fieldLabel : '加工流程',
														allowBlank : false,
														// readOnly : true,
														// value : _cus.attn,

														name : "scheme",
														anchor : '90%'
													}]
										}]

							}, {
								layout : 'column',// 在formpanel的itmes加入一个column的定义
								border : false,
								labelSeparator : ':',
								items : [{
											columnWidth : .651,
											layout : 'form',
											border : false,
											items : [{
														xtype : 'textfield',
														fieldLabel : '分厂',
														allowBlank : false,
														// readOnly : true,
														// value : _cus.attn,
														name : "factory",
														anchor : '90%'
													}]
										}]

							}, {
								layout : 'column',// 在formpanel的itmes加入一个column的定义
								border : false,
								labelSeparator : ':',
								items : [{
											columnWidth : .651,
											layout : 'form',
											border : false,
											items : [{
														xtype : 'datefield',
														format : 'Y-m-d',
														fieldLabel : '日期',
														allowBlank : false,

														name : "date1",
														anchor : '90%'
													}]
										}]

							}, {
								layout : 'column',// 在formpanel的itmes加入一个column的定义
								border : false,
								labelSeparator : ':',
								items : [{
											columnWidth : .651,
											layout : 'form',
											border : false,
											items : [{
														xtype : 'textfield',
														fieldLabel : '估算成本',
														// readOnly : true,
														// value : _cus.attn,
														name : "cost",
														anchor : '90%'
													}]
										}]

							}, {
								layout : 'column',// 在formpanel的itmes加入一个column的定义
								border : false,
								labelSeparator : ':',
								items : [{
											columnWidth : .651,
											layout : 'form',
											border : false,
											items : [{
														xtype : 'textfield',
														fieldLabel : '产品报价',
														// readOnly : true,
														// value : _cus.attn,
														name : "price",
														anchor : '90%'
													}]
										}]

							}, {
								layout : 'column',// 在formpanel的itmes加入一个column的定义
								border : false,
								labelSeparator : ':',
								items : [{
											columnWidth : .651,
											layout : 'form',
											border : false,
											items : [{
														xtype : 'numberfield',
														fieldLabel : '提升比例',
														// readOnly : true,
														value : 0.32,
														name : "rate",
														anchor : '90%'
													}]
										}]

							}, {
								columnWidth : .99,
								layout : 'form',
								xtype : 'fieldset',
								title : '相似订单',
								collapsible : true,

								anchor : '95%',
								autoHeight : true,
								// collapsed : true,
								hideBorders : true,

								items : simGrid

							}]
				});
	}
	return updateForm;
}

function initGrid() {
	Ext.QuickTips.init();

	var xg = Ext.grid;

	// win
	if (!win) {
		win = new Ext.Window({
			layout : 'column',
			width : 400,
			// height : 600,
			autoHeight : true, // 4601782
			closeAction : 'hide',
			plain : true,
			items : form,
			modal : false,// 如果这个属性不设，弹出窗口会增加20M内存使用。
			// autoScoll : true,

			buttons : [{
				text : '估算成本',
				handler : function() {
					if (form.getForm().isValid()) {

						var cost = {
							"ssign" : form.find("name", "ssign")[0].getValue(),
							"spec" : form.find("name", "spec")[0].getValue(),
							"plate" : form.find("name", "plate")[0].getValue(),
							"factory" : form.find("name", "factory")[0]
									.getValue(),
							"specType" : form.find("name", "specType")[0]
									.getValue(),
							"scheme" : form.find("name", "scheme")[0]
									.getValue()
						};
						CostEstimate.generateCost(cost, form.find("name",
										"date1")[0].getValue(), function(_ret) {
									// alert(_ret);
									form.find("name", "cost")[0].setValue(_ret);
									form.find("name", "cost")[0].setValue(_ret
											* form.find("name", "rate")[0]
													.getValue());
								});

					} else {
						Ext.MessageBox.alert('提示', '请正确填写数据！');
					}
				}
			}, {
				text : '差异性分析',
				handler : function() {
					if (form.getForm().isValid()) {
						var cost = {
							"ssign" : form.find("name", "ssign")[0].getValue(),
							"spec" : form.find("name", "spec")[0].getValue(),
							"plate" : form.find("name", "plate")[0].getValue(),
							"factory" : form.find("name", "factory")[0]
									.getValue(),
							"specType" : form.find("name", "specType")[0]
									.getValue(),
							"scheme" : form.find("name", "scheme")[0]
									.getValue()
						};
						CostEstimate.generateCostAnalysis(cost, form.find(
										"name", "date1")[0].getValue(),
								function(_ret) {
									form.find("name", "cost")[0].setValue(_ret);
									form.find("name", "cost")[0].setValue(_ret
											* form.find("name", "rate")[0]
													.getValue());
								});

					} else {
						Ext.MessageBox.alert('提示', '请正确填写数据！');
					}
				}
			}, {
				text : '相似产品列表',
				handler : function() {
					if (form.getForm().isValid()) {

						similaryList.load({
									params : {
										ssign : form.find("name", "ssign")[0]
												.getValue(),
										spec : form.find("name", "spec")[0]
												.getValue(),
										plate : form.find("name", "plate")[0]
												.getValue(),
										factory : form.find("name", "factory")[0]
												.getValue(),
										specType : form
												.find("name", "specType")[0]
												.getValue(),
										scheme : form.find("name", "scheme")[0]
												.getValue()

									},
									callback : function(_ret) {
										initSimGrid();
										win.setHeight(550);
										updateForm.findById("sim-grid").show();
										updateForm.findById("sim-grid")
												.getView().refresh();
									}
								});

					} else {
						Ext.MessageBox.alert('提示', '请正确填写数据！');
					}
				}
			}]
		});
	}

	// Grid
	var sm = new xg.CheckboxSelectionModel();
	grid = new xg.GridPanel({
		id : 'button-grid',
		ds : ds,
		cm : new xg.ColumnModel([sm, {
					header : "序列号",
					width : 40,
					sortable : true,
					dataIndex : 'transnum'
				}, {
					header : "客户编号",
					width : 40,
					sortable : true,
					dataIndex : 'custid'
				}, {
					header : "牌号",
					width : 10,
					sortable : true,
					dataIndex : 'ssign'
				}, {
					header : "规格",
					width : 40,
					sortable : true,
					dataIndex : 'spec'
				}, {
					header : "镀层",
					width : 40,
					sortable : true,
					dataIndex : 'plate'
				}, {
					header : "请求日期",
					width : 40,
					sortable : true,
					dataIndex : 'reqdate'
				}]),
		sm : sm,
		stripeRows : true,

		viewConfig : {
			forceFit : true
		},

		// inline toolbars
		tbar : [ {
					text : '进行详细报价',
					tooltip : '按照公司原有的规范进行详细报价',
					iconCls : 'option',
					onClick : function() {
						if (sm.getCount() == 1) {
							Ext.MessageBox.confirm('提示', '你确定要对这个询价信息进行详细结算吗？',
									function(button) {
										if (button == 'yes') {
											detailSm = sm;
											var _data = sm.getSelections()[0];
											TRANSNUM = _data.data["transnum"];

											detailForm = getDetailForm();
											detailWin = initDetailWin();

											// form.show();
											var items = new Ext.util.MixedCollection();
											items.add("detailForm", detailForm);
								
											detailWin.items = items;
										
											detailWin.show();
										

											detailFormStore.load({
												params : {
													transnum : _data.data["transnum"]
												},
												callback : function() {
													detailForm.getForm()
															.reset();
													detailForm
															.getForm()
															.loadRecord(detailFormStore
																	.getAt(0));

												}
											});
											detailGridStore.load({
												params : {
													transnum : _data.data["transnum"]
												}
											});
										}
									});
						} else {
							Ext.MessageBox.alert('提示', '请选择一条记录！');
						}
					}
				}],

		bbar : new Ext.PagingToolbar({
					pageSize : 10,
					store : ds,
					displayInfo : true,
					displayMsg : '显示第 {0} 条到 {1} 条记录，一共 {2} 条',
					emptyMsg : "没有记录"
				}),
		width : 815,
		autoHeight : true,
		title : '待询价信息列表',
		iconCls : 'icon-grid',
		renderTo : 'main'
	});
};


function initDetailWin() {
	if (!detailWin) {
		detailWin = new Ext.Window({

			layout : 'column',
			width : 450,
			// height : 600,
			autoHeight : true, // 4601782
			closeAction : 'hide',
			plain : true,
			items : detailForm,
			modal : false,// 如果这个属性不设，弹出窗口会增加20M内存使用。
			// autoScoll : true,

			buttons : [{
				text : '保存',
				handler : function() {

					Ext.MessageBox.confirm("提示:", "是否需要把所有的数据都保存，被删除的数据不能恢复了?",
							function(button) {
								if (button == "yes") {

									processGrid.stopEditing();

									for (var i = 0; i < detailGridStore
											.getCount(); i++) {
										var pd = {
											transnum : detailGridStore.getAt(i).data["transnum"],
											linenum : detailGridStore.getAt(i).data["linenum"],
											type : detailGridStore.getAt(i).data["type"],
											spec : detailGridStore.getAt(i).data["spec"],
											perqty : detailGridStore.getAt(i).data["perqty"],
											mianji : detailGridStore.getAt(i).data["mianji"],
											danjia : detailGridStore.getAt(i).data["danjia"],
											tisheng : detailGridStore.getAt(i).data["tisheng"],
											jiage : detailGridStore.getAt(i).data["jiage"],
											pecent1 : detailGridStore.getAt(i).data["pecent1"]
										};

										DetailPrice.saveProcess(pd, function(
												ret) {
											if (ret) {
												;
											} else {
												Ext.MessageBox
														.alert(
																"提示",
																"第"
																		+ i
																		+ "条记录 save fail:"
																		+ ret);
											}
											return true;
										});
									}

									

									processGrid.startEditing(0, 0);

									/* 对总的结算纪录进行保存 */

									if (detailForm.getForm().isValid()) {
										// Ext.msg.alert("starting to submit");
										detailForm.getForm().submit({
											failure : function(retForm,
													retAction) {
												Ext.MessageBox.alert('提示',
														'保存数据失败！');
											},
											success : function(retForm,
													retAction) {
												detailWin.hide();
												// processGrid.destroy();
												ds.reload();
											},
											waitMsg : '正在保存数据，请稍后...'
										});

									} else {
										Ext.MessageBox.alert('提示', '请正确填写数据！');
									}
								}
							})

				}
					// initData();

			}, {
				text : '添加一行',
				// @todo...,count 是即时的数据量.
				handler : function() {
					var arr = detailSm.getSelections();
					var pd = new process({
								transnum : "",
								linenum : "",
								type : "",
								spec : "",
								perqty : "",
								mianji : "",
								danjia : "",
								tisheng : "",
								jiage : "",
								pecent1 : ""
							});
					processGrid.stopEditing();
					detailGridStore.insert(detailGridStore.getCount(), pd);
					processGrid.startEditing(0, 0);
				}
			}, {
				text : '删除多余行',
				// @todo...
				handler : function() {
					var sm = processGrid.getSelectionModel();
					if (sm.getCount() > 0) {
						Ext.MessageBox.confirm("提示:", "是否需要删除这"
										+ detailSm.getCount() + "个数据?",
								function(button) {
									if (button == "yes") {

										processGrid.stopEditing();

										var arr = sm.getSelections();
		
										for (var i = 0; i < arr.length; i++) {
											var pd = new process({
												transnum : arr[i].data["transnum"],
												linenum : arr[i].data["linenum"],
												type : arr[i].data["type"],
												spec : arr[i].data["spec"],
												perqty : arr[i].data["perqty"],
												mianji : arr[i].data["mianji"],
												danjia : arr[i].data["danjia"],
												tisheng : arr[i].data["tisheng"],
												jiage : arr[i].data["jiage"],
												pecent1 : arr[i].data["pecent1"]
											});
											oberser = pd;
											DetailPrice.removeProcess(convertToObj(pd),
											function(_ret) {
											});
											detailGridStore
													.remove(detailGridStore
															.getAt(pd.data["linenum"]
																	- 1));
										}

										processGrid.startEditing(0, 0);
										processGrid.getView().refresh();
									}
								});

					}
				}
			}, {
				text : '修改',
				tooltip : '修改一条结算信息',
				iconCls : 'option',
				onClick : function() {
					var sm = processGrid.getSelectionModel();
					if (sm.getCount() == 1) {
						processDetailSm=sm;
						LINENUM = sm.getSelections()[0].data["linenum"];
						form = getProcessDetailForm();
						processDetailWin = getProcessDetailWin();
						// processDetailForm.show();
						// updateForm.hide();
						var items = new Ext.util.MixedCollection();
						items.add("form", form);
						processDetailWin.width = 355, processDetailWin.items = items;

						processDetailWin.show();
						initDD(form, processDetailSm);
						form.getForm().reset();
						form.getForm().loadRecord(sm.getSelected());

					} else {
						Ext.MessageBox.alert('提示', '请选择一条记录！');
					}
				}
			}, {
				text : '关闭',
				handler : function() {

					detailWin.hide();

				}
			}]
		});
	}
	return detailWin;
}

function getProcessDetailForm() {
	if (!processDetailForm) {
		processDetailForm = new Ext.FormPanel({
			labelWidth : 75,
			id : "processDetaiForm",
			url : 'orderInput.do?action=jump',
			frame : true,
			bodyStyle : 'padding:5px 5px 0',
			width : 340,
			defaults : {
				width : 230
			},
			// ddGroup : 'gridDDGroup',
			// region : 'center',{
			defaultType : 'textfield',
			items : [{
						fieldLabel : '编号',// 一开始漏了个主id,导致update不成功
						name : 'transnum',
						readOnly : true,
						allowBlank : false
					}, {
						fieldLabel : '规格类型',// 一开始漏了个主id,导致update不成功
						name : 'specType',
						xtype : 'combo',
						store : sortStore,
						displayField : 'sort',

						listeners : {
							"select" : function(_combox, _rec, _index) {
								var sortType = _rec.data['sort'];

								/* 根据加工类型，动态的查找所有的加工 */
								schemeStore.load({
											params : {
												sortType : sortType
											}
										});
								return true;

							}
						},
						triggerAction : 'all',
						mode : 'local',
						// readOnly : true,
						allowBlank : false
					}, {
						fieldLabel : '加工流程编号',// 一开始漏了个主id,导致update不成功
						name : 'scheme',
						xtype : 'combo',
						store : schemeStore,
						displayField : 'scheme',
						// typeAhead : true,
						triggerAction : 'all',
						mode : 'local',

						listeners : {
							"select" : function(_this, _rec, _index) {

								Ext.Msg.alert("提示", _rec.data["bz"]);

							}
						},
						// readOnly : true,
						allowBlank : false
					}, {
						fieldLabel : '加工名称',// 一开始漏了个主id,导致update不成功
						name : 'type',

						// readOnly : true,
						allowBlank : false
					}, {
						fieldLabel : '加工步骤',// 一开始漏了个主id,导致update不成功
						name : 'linenum',
						readOnly : true,
						allowBlank : false
					}, {
						fieldLabel : '加工后规格',// 一开始漏了个主id,导致update不成功
						name : 'spec',
						listeners : {
							"change" : function(_this, _new, _old) {
								var P = processDetailForm.find("name", "linenum")[0]
										.getValue();
								var func=new AreaFunc(schemeStore.getAt(P-1).data["areaFunc"]);
								var R = func.doAction(_new);
								processDetailForm.find("name", "mianji")[0]
										.setValue(R);
								func=null;
							}
						},
						allowBlank : false
					}, {
						fieldLabel : '加工数量',// 一开始漏了个主id,导致update不成功
						name : 'perqty',
						allowBlank : false
					}, {
						fieldLabel : '加工面积',// 一开始漏了个主id,导致update不成功
						name : 'mianji',
						allowBlank : false
					}, {
						fieldLabel : '加工单价',// 一开始漏了个主id,导致update不成功
						name : 'danjia',
						allowBlank : false
					}, {
						fieldLabel : '加工提升',// 一开始漏了个主id,导致update不成功
						name : 'tisheng',
						allowBlank : false
					}, {
						fieldLabel : '加工成品率',// 一开始漏了个主id,导致update不成功
						name : 'pecent1',
						allowBlank : false
					}, {
						fieldLabel : '加工费用',// 一开始漏了个主id,导致update不成功
						name : 'processCost'
						// readOnly : true,
					// allowBlank : false
				}	, {
						fieldLabel : '到目前为止费用',// 一开始漏了个主id,导致update不成功
						name : 'untilPrice'
						// readOnly : true,
					// allowBlank : false
				}]
		});
	}
	return processDetailForm;
}// 构造了一个更新的界面。

function getProcessDetailWin() {
	if (!processDetailWin) {
		processDetailWin = new Ext.Window({
					layout : 'column',
					width : 355,
					autoHeight : true, // 4601782
					closeAction : 'hide',
					plain : true,
					items : processDetailForm,
					modal : false,// 如果这个属性不设，弹出窗口会增加20M内存使用。
					buttons : [{
						text : '保存',
						handler : function() {
							if (form.getForm().isValid()) {
								// Ext.msg.alert("starting to submit");
								processDetailWin.hide();
								// alert(processDetailSm.getSelections().length);
								var _rec = detailGridStore.getAt(LINENUM-1);

								_rec.data["spec"] = processDetailForm.find(
										"name", "spec")[0].getValue();
								_rec.data["mianji"] = processDetailForm.find(
										"name", "mianji")[0].getValue();
								_rec.data["type"] = processDetailForm.find(
										"name", "type")[0].getValue();
								_rec.data["perqty"] = processDetailForm.find(
										"name", "perqty")[0].getValue();
								_rec.data["linenum"] = processDetailForm.find(
										"name", "linenum")[0].getValue();
								// _rec.data["processPrice"]=updateForm.find("name","processPrice")[0].getValue();
								_rec.data["tisheng"] = processDetailForm.find(
										"name", "tisheng")[0].getValue();
								_rec.data["pecent1"] = processDetailForm.find(
										"name", "pecent1")[0].getValue();
								_rec.data["danjia"] = processDetailForm.find(
										"name", "danjia")[0].getValue();

								detailGridStore.fireEvent("update", this, _rec,
										_rec);
								// processGrid.getView().refresh();

							} else {
								Ext.MessageBox.alert('提示', '请正确填写数据！');
							}
						}
					}, {
						text : '清空',
						handler : function() {
							processDetailForm.getForm().reset();
						}
					}, {
						text : '关闭',
						handler : function() {
							processDetailForm.getForm().reset();
							processDetailWin.hide();
						}
					}]
				});

		processDetailWin.on("hide", function(_this) {
					// processGrid.getSelectionModel().clearSelections();

				});
	}
	return processDetailWin;
}
function calcGross() {
	var grossGPrice = detailForm.find("name", "grossGPrice")[0].getValue();
	var grossUpdate = detailForm.find("name", "grossUpdate")[0].getValue();
	var grossWeight = detailForm.find("name", "grossWeight")[0].getValue();
	detailForm.find("name", "grossPrice")[0].setValue(parseFloat(grossWeight)
			* parseFloat(grossUpdate) * parseFloat(grossGPrice));
	detailForm.find("name", "grossPrice")[0].fireEvent("change");
}
function calcFirstProcess() {
	var grossPrice = detailForm.find("name", "grossPrice")[0].getValue();
	if (detailGridStore.getCount() > 0) {
		detailGridStore.getAt(0).data["processCost"] = 1;
		detailGridStore.fireEvent("update", this, detailGridStore.getAt(0));
		detailForm.find("name", "mtrlProcsPrice")[0].setValue(detailGridStore
				.getAt(detailGridStore.getCount() - 1).data["processCost"]);

	}
	detailForm.find("name", "mtrlProcsPrice")[0].fireEvent("change");
}
function calcBaseFee() {
	var grossPrice = detailForm.find("name", "grossPrice")[0].getValue();
	var mtrlProcsPrice = detailForm.find("name", "mtrlProcsPrice")[0]
			.getValue();
	var congCiFee = detailForm.find("name", "congCiFee")[0].getValue();
	var packFee = detailForm.find("name", "packFee")[0].getValue();
	var otherFee = detailForm.find("name", "otherFee")[0].getValue();
	/* 先计算基本价格 */
	detailForm.find("name", "baseCost")[0].setValue(parseFloat(grossPrice)
			+ parseFloat(mtrlProcsPrice) + parseFloat(congCiFee)
			+ parseFloat(packFee) + parseFloat(otherFee));
	detailForm.find("name", "baseCost")[0].fireEvent("change");
}
function calcAmount() {
	var totalUpdate = detailForm.find("name", "totalUpdate")[0].getValue();
	var base = detailForm.find("name", "baseCost")[0].getValue();
	/* 计算产品价 */
	detailForm.find("name", "amount")[0].setValue(parseFloat(base)
			* (1 + parseFloat(totalUpdate)));
	detailForm.find("name", "amount")[0].fireEvent("change");
}
function calcAllFee() {
	var sxf = detailForm.find("name", "sanXiangFee")[0].getValue();
	var trf = detailForm.find("name", "taxFee")[0].getValue();

	var amount = detailForm.find("name", "amount")[0].getValue();

	detailForm.find("name", "mtrlProcs")[0].setValue(parseFloat(amount)
			+ parseFloat(sxf) + parseFloat(trf));

}

function calcSXFee() {
	var sxr = detailForm.find("name", "sanXiangRate")[0].getValue();
	var base = detailForm.find("name", "amount")[0].getValue();
	detailForm.find("name", "sanXiangFee")[0].setValue(parseFloat(sxr)
			* parseFloat(base));
	detailForm.find("name", "sanXiangFee")[0].fireEvent("change");

}
function calcTRFee() {
	var sxr = detailForm.find("name", "taxRate")[0].getValue();
	var base = detailForm.find("name", "amount")[0].getValue();
	detailForm.find("name", "taxFee")[0].setValue(parseFloat(sxr)
			* parseFloat(base));
	detailForm.find("name", "taxFee")[0].fireEvent("change");
}

function initDD(updateForm, windowSm) {
	if (!flag) {
		var formPanelDropTargetEl = updateForm.getEl();
		var formPanelDropTarget = new Ext.dd.DropTarget(formPanelDropTargetEl,
				{
					ddGroup : 'gridDDGroup',
					notifyEnter : function(ddSource, e, data) {

						// Add some flare to invite drop.
						// alert(ddSource.getCount());
						updateForm.body.stopFx();
						updateForm.body.highlight();
					},
					notifyDrop : function(ddSource, e, data) {

						var selectedRecord = ddSource.dragData.selections[0];
						// 这里需要处理一下，原来的编号，主id编号不变
						var _rec = windowSm.getSelections()[0];
						// alert(windowSm.getSelections().length);
						
						selectedRecord.data["transnum"] = _rec.data["transnum"];
						//alert(processDetailForm.find("name","linenum")[0].getValue());
						selectedRecord.data["linenum"] =processDetailForm.find("name","linenum")[0].getValue();

						// Load the record into the form

						updateForm.getForm().loadRecord(selectedRecord);

						return (true);
					}
				});
		flag = true;
	}
}
function convertToObj(rec)
{
	var obj={};
	for(property in rec.data)
	{
		obj[property]=rec.data[property];
	}
	return obj;
}